矩阵求导

Matrix Derivative

矩阵的导数运算

一、标量方程对向量的导数

分子: f(y) 为 1×1 的标量;分母: y 为 n×1 的向量

1. 分母布局 denominator layout

与分母的行数相同

∂f(y)∂y=(∂f(y)∂y1∂f(y)∂y2⋮∂f(y)∂yn)

2. 分子布局 numerator layout

与分子的行数相同

∂f(y)∂y=(∂f(y)∂y1,∂f(y)∂y2,…,∂f(y)∂yn)
注意

以上两种布局没有本质区别,互为转置;为方便起见,以下的推导默认使用分母布局。

二、向量方程对标量的导数

f(u)=(f1(u)f2(u)⋯fm(u))⇒∂f(u)∂u=(∂f1(u)∂u∂f2(u)∂u⋯∂fm(u)∂u)

三、向量方程对向量的导数

f(y)=(f1(y)f2(y)⋮fm(y))(m×1)y=(y1y2⋮yn)(n×1)

分母布局的结果如下:(其转置(分子布局)实际上为雅可比矩阵)

∂f(y)∂y=(∂f(y)∂y1∂f(y)∂y2⋮∂f(y)∂yn)(n×1)=(∂f1(y)∂y1∂f2(y)∂y1…∂fm(y)∂y1∂f1(y)∂y2∂f2(y)∂y2…∂fm(y)∂y2…………∂f1(y)∂yn∂f2(y)∂yn…∂fm(y)∂yn)(n×m)

有关结论(分母布局)

u=(u1u2⋮un)(n×1)y=(y1y2⋮yn)(n×1)∂(uTf)∂u=f∂Ay∂y=AT

二次型的求导:

∂yTAy∂y=Ay+ATy

如果 A 为对称阵,则有 ∂yTAy∂y=2Ay

链式法则

标量的链式求导,注意矩阵不满足乘法交换律
使用分母布局:

∂J∂u→=∂y∂u→∂J∂y

离散状态空间方程: x→[k+1]=Ax→[k]+Bu→[k]

代价函数: J=x→[k+1]Tx→[k+1]

∂J∂u→=∂x→[k+1]∂u→[k]∂J∂x→[k+1]=BT⋅2x→[k+1]

实际应用

线性回归

z^=y1+y2xJ=∑i=1n[zi−(y1+y2xi)]2

使用矩阵求解

z→=(z1z2⋮zn)x=(1x11x2⋮⋮1xn)y=(y1y2)z^→=x→y=(y1+y2x1y1+y2x2⋮y1+y2xn)z→−z^→=(z1−(y1+y2x1)z2−(y1+y2x2)⋮zn−(y1+y2xn))J=[z→−z^→]T[z→−z^→]=[z→T−yTx→T][z→−x→y]=z→Tz→−yTx→Tz→−z→Tx→y+yTx→Tx→y=z→Tz→−2z→Tx→y+yTx→Tx→y∂J∂y=−2(z→Tx→)+2x→Tx→y=0⇒y=(x→Tx→)−1x→Tz→

如果没有解析解,使用机器学习的梯度下降

定义初始值 y∗
循环迭代 y∗=y∗−α∇